Pretty much I want to just tween a parts cframe rotation. The part is constantly moving so obviously if I tween it using cframe.lookat() its gonna try to tween itself backwards and it looks weird.
How should I go about only tweening the rotation and nothing else? That way it doesnt look jittery while its moving.
Unanchored parts already moving should not be tweened because the Roblox physics engine will calculate positions that are in conflict with the tween causing the jitter you see. Instead, use a Body Mover. Body Movers are managed by the Roblox physics engine so they will produce smooth motion. It sounds like you need to parent an AngularVelocity body mover to your object to get it to rotate. AngularVelocity will apply the necessary force to maintain a constant angular velocity that you specify.
Use AlignOrientation to maintain a constant orientation. This is the old BodyGyro which I think is a better name. Set OrientationAlignmentMode to Enum.OrientationAlignmentMode.OneAttachment to have it act like a gyro and point the part in the orientation of a CFrame. If you need it to track a fixed position, like say you have a moving part you want always pointing at a fixed spot, you will probably need to keep updating the orientation CFrame in the body mover. There may be other combinations of movers and constraints you can use to pull of various other movement mechanics. Check out Mover Constraints | Roblox Creator Documentation