Character Turning bug

Hey everyone, first post and very new to Unity so be gentle with me!!

I’m working on a survival shooter game, written a script for character movement where the left stick on a controller moves the character, and the right stick aims/ shoots the player characters weapon.

All is well however if I press up on either stick, which should spin the character to face exactly “z” in the world, it doesn’t respond at all! This is the same with keyboard input as well as the controller, so I think I’ve narrowed it down to this part of the script but can’t for the life of me figure out why the character will not face this one direction! The turning script is as follows,

    IEnumerator Turn()
    {
        //Joystick Input
        Quaternion oldRotation = transform.rotation;
        Quaternion newStick = new Quaternion();
        newStick.eulerAngles = turnVector;
        float t = turnSpeed * Time.deltaTime; 
        if (turnVector != Vector3.zero) {
            transform.rotation = Quaternion.Slerp (oldRotation, newStick, t);
        }
        yield return null;//new WaitForSeconds(2);

    }

Any help will be appreciated!!

Regards,
Adam

Got it!
For reference, instead of using “Vector3.zero” I’m using

 if (turnVector != transform.TransformDirection(Vector3.forward))

which produces silky smooth rotation in all directions!