Slowly Rotate to Look at

I have a simple line of code that slowly rotates towards a ray cast point. I use a reference point to know the current point that is looked at.
turret.LookAt(Vector3.Lerp(hit.point, refPoint.position, 0.75f));
This always ends up “Snapping” to the proper rotation. Why is this?

Because you don’t actually use Lerp correctly (see the answer I gave here: Having difficulty with Lerp - Questions & Answers - Unity Discussions)

Either make the 3rd parameter of your Lerp method go from 0 to 1 overtime, or use the Quaternion.RotateTowards method:

public float RotationSpeed = 1;
private Quaternion targetRotation;

private void Start()
{
    targetRotation = turret.rotation;
}


void Update()
{
    if (Physics.Raycast(...))
    {
        targetRotation = Quaternion.LookRotation(hit.point - turret.position);
    }
    turret.rotation = Quaternion.RotateTowards(turret.rotation, targetRotation, Time.deltaTime * RotationSpeed);
}