Rotation by a given distance in given direction on a Bloch sphere

I'm using the following matrix to rotate a states by a distance given by $\theta$ in a direction given by $\phi$: $$U = \left(\begin{array}{cc} \cos{\theta\over{2}} & -e^{- i\phi}\sin{\theta\over{2}} \\ e^{i\phi}\sin{\theta\over{2}} & \cos{\theta\over{2}} \end{array}\right)$$

It works well only in the case, when my initial state is a state $|0\rangle$ or $|1\rangle$. E.g. when I get new state by: $$|\psi\rangle = U_{\theta,\phi}|0\rangle$$ distance between $|0\rangle$ and $|\psi\rangle$ is equal $\theta$ but when I do it for any other state, e.g. $|+\rangle$ - distance between two states after that operation isn't always equal to $\theta$ and depends on $\phi$ parameter. Am I doing something wrong or it's normal and expected result? If so, is there any matrix which will allow me to get the results that I expect?

when I do it for any other state, e.g. $|+\rangle$ - distance between two states after that operation isn't always equal to $\theta$ and depends on $\phi$ parameter.
That's the expected behaviour. Every rotation of the Bloch sphere has stationary points (or, in Hilbert-space language, every unitary has a basis of eigenvectors), otherwise known as the rotation axis, which means that the Bloch-sphere distance between $|\psi⟩$ and $U|\psi⟩$ can always be zero. Thus, the Bloch-sphere angle between $|\psi⟩$ and its image under a rotation by angle $\theta$ can be any number between zero and $\theta$, depending on where $|\psi⟩$ is with respect to the axis of the rotation.
• @Мотя No, as I stated in the answer, that's impossible with a unitary, which must always have eigenstates and therefore fixed points that don't move on the Bloch sphere. On a more abstract setting, the only way to achieve that on the two-sphere is with the antipode map; this is achievable on Hilbert space by a rotation by 180° about the $y$ axis plus a complex conjugation on the $z$ basis, but that's antilinear instead of linear, so it's not particularly useful. This is a more fundamental problem than just Hilbert space - just think about spheres and their geometry. – Emilio Pisanty Mar 19 '17 at 20:10