Yes.So the better solution, is to have a normal driving ?
Sort of. These methods are sometimes useful:Bepuphysics give helper for quaternion comparaison ?
Toolbox.GetAngleFromQuaternion
Toolbox.GetAxisAngleFromQuaternion
Toolbox.GetQuaternionBetweenNormalizedVectors
Another useful operation for comparison is computing the intermediate rotation between two orientation quaternions, which you can get with a conjugate and multiply.
Also, since you're primarily concerned with the forward direction versus a desired direction, you should be able to avoid quaternions in favor of simple dot products or projections.