Why is Mouse X choppy when applying other rotations?

So i"m trying to align my player to the surface normal and rotate the player along the y-axis with mouse X in fixed update. The problem is that mouse X gets a choppy feel the player is being aligned at the same time. At high frame rates it becomes unbearable. Here’s a short version of my code. Currently im using torque to align the player, I thought it might help but it has the same problem as using “Quaternion.Slerp()” for the alignment rotation.

private Vector3 rotation = Vector3.zero;
private Vector3 velocity = Vector3.zero;
private bool isGrounded;

[SerializeField]
private float moveSpeed = 600f;
[SerializeField]
private float XlookSensitivity = 6f;

private Vector3 closestSpherePosition = Vector3.zero;

void Start()
{
    rb = GetComponent<Rigidbody>();
}

void Update()
{
    rotation.y = Input.GetAxis("Mouse X") * XlookSensitivity;

    velocity = new Vector3(Input.GetAxisRaw("Horizontal"), -0.2f, Input.GetAxisRaw("Vertical")).normalized * moveSpeed;
}

//Perform movement based on velocity vector
void PerformMovement()
{
    if (velocity != Vector3.zero)
    {
        rb.AddRelativeForce(velocity, ForceMode.Force);
    }
}

void FixedUpdate()
{
    if (isGrounded)
    {
        //Apply y-axis rotation
        rb.MoveRotation(rb.rotation * Quaternion.Euler(rotation));

        //Apply Movement
        PerformMovement();

        //Get alignment vector
        Vector3 gravityUp = (transform.position - closestSpherePosition).normalized;
        Vector3 localUp = transform.up;
        Vector3 alignAxis = Vector3.Cross(localUp, gravityUp).normalized;

        //Apply alignment rotation if gravityUp and localUp are not parallel (or close to)
        if (Vector3.Dot(gravityUp, localUp) < 0.999)
        {
            rb.AddTorque(alignAxis * 200f, ForceMode.Acceleration);
        }
    }
}

void OnCollisionEnter(Collision collision)
{
    Debug.Log("Entered");
    if (collision.gameObject.CompareTag("Sphere"))
    {
        isGrounded = true;
        closestSpherePosition = collision.transform.position;
    }
}

void OnCollisionExit(Collision collision)
{
    Debug.Log("Exited");
    if (collision.gameObject.CompareTag("Sphere"))
    {
        isGrounded = false;
    }
}

}

***The player is moving around a sphere.
***Angular drag and drag are both set to 30. This gives it a snappy feel when applying forces for movement and alignment rotation.

[UPDATE]
I have tried adding time.delta time to rotation and movement. The look speed was faster but it was as choppy as it was without.

looks like you need a target rotation, try this in the Update()

_lookAngle += x * _turnSpeed;
_transformTargetRot = Quaternion.Euler(0f, _lookAngle, 0f);


if (_turnSmoothing > 0)
        {
            transform.localRotation = Quaternion.Slerp(transform.localRotation, _transformTargetRot, _turnSmoothing * Time.deltaTime);
        }

By creating a parent object on the player and applying one rotation to it then applying the other rotation to the child, results in a smooth combined rotation.