I would try using Vector3.Lerp in your CameraScript when applying the new angle. So instead of:
transform.eulerAngles = new Vector3(pitch, yaw, 0.0f);
I would make it 50% in between the previous value and the new one like this:
transform.eulerAngles = Vector3.Lerp(transform.eulerAngles, new Vector3(pitch, yaw, 0f), 0.5f);