I realize that I have to compensate for the torso's rotation.
Here is what I have so far but it isn't working correctly for some reason:
char.Torso.Neck.C0 = ((CFrame.new(0,1.5,0)*(cam.CoordinateFrame-cam.CoordinateFrame.p)):inverse()*(char.Torso.CFrame-char.Torso.CFrame.p)):inverse()