I'm using this currently:
rjcf = rootc0 * CFrame.Angles(0,mouse.Hit.lookVector.x,0)
rjcf is "RootJoint CFrame" (the C0 of the torso) rootc0 is "RootJoint C0" (the default C0 rotation of the torso) This works, except if I turn around 180 degrees, then it's still looking the other side.
I solved this alone, using bodygyro.

2 comments
Do you only want the torso to rotate around the y-axis?
Yes.