I am not sure I understand what is your goal. Correct me if I am wrong:
1. You are simulating motion in 3D.
2. Your character/spaceship is located at point (x,y,z). The point (x,y,z) doest change, your spaceship rotates around it.
3. His head (or body or whatever) is oriented according to an orthogonal coordinate system located at the point (x,y,z).
4. The orthogonal system itself is given by 3 vectors, f, r and u (for forward, up and right). Each of f,r and u has three coordinates. The vectors are all of unit length and are pairwise perpendicular.
5. You want to perturb the vector f and be able to figure how to change vectors r and u.
Well, perturbing the vector f doesnt uniquely determine what happens to vectors r and u. Imagine for example rotation around the f axis. The vector f doesnt change at all (but the vectors r and u do), and your spaceship is rotating in place. If you want to describe rotation around the point (x,y,z), you need three parameters. One such choice is called "Euler angles" (
http://en.wikipedia.org/wiki/Euler_angles ).
The small change in vector f gives you only two parameters - yes, you change all three of its coordinates, but then you normalize, so you lose one "degree of freedom". This is where you lose precisely one parameter - that of the rotation around the f vector.
I would suggest you generate a random small motion of the vector f, and then another random small motion parametrizing the angle of rotation around f.
Until the goal is clear doesn't make sense to try the formulas, but I can try to help with that as well.