Remove jitter from camera movement/sensitivity delay?

I found a script which I edited a little to work for what I need, and it basically adds a delay to the camera movement and adds rotation o the camera when the player looks around. This is what the script looks like:

local MaxRot = 80

local Character = script.Parent
local X,Y = 0,0
repeat wait(0.1) until Character.Head
	for _, v in pairs(Character:GetDescendants()) do if v:IsA('BasePart') or v:IsA("MeshPart") then 
			v.LocalTransparencyModifier = 1 
	workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
	game:GetService('UserInputService').MouseBehavior = Enum.MouseBehavior.LockCenter
	local Tick = tick()
	local MouseDelta = game:GetService('UserInputService'):GetMouseDelta()
	local DeltaX = math.rad((MouseDelta.X * 1.9)*(1.4*2.1))
	local DeltaY = math.rad((MouseDelta.Y * 1.9)*(1.4*2.1))
	X = X - math.rad(DeltaX)
	Y = math.min(math.max(Y - math.rad(DeltaY), math.rad(-MaxRot)), math.rad(MaxRot))
    workspace.CurrentCamera.CFrame = workspace.CurrentCamera.CFrame:Lerp( * CFrame.Angles(0, X, 0) * CFrame.Angles(Y,0,0),.5)

This works just fine, however when I made character parts visible or added it to a viewmodel, this is what happens

There is a very noticeable jitter when moving in any direction.
I saw somewhere that Enum.RenderPriority.Camera.Value + 1 would somehow help this, but I don’t know where I can put this into the script. I also tried to bind it to renderstepped, but this was a mistake because it was then just updating to the framerate and causing immense frame drops.

Since it’s the viewmodwl that’s jittering, why not show it to us?

it also happens with character parts, basically anything that’s moving and locked to the camera

the viewmodel without the script works fine

You might want to utilize delta time in your lerp function.