How to smoothly rotate only one axis

So I’m currently using this little bit of code to get a character to match the rotation of a marker after they’ve reached it:

public IEnumerator FinalNavRotation(Quaternion walkEventRotation) {
		initialRotation = transform.rotation;
		desiredRotation = walkEventRotation;
		turnTime = 0f;
		while(turnTime < .5f){
			transform.rotation = Quaternion.Slerp (initialRotation, desiredRotation, (turnTime * 2));
			turnTime += Time.deltaTime;
			yield return new WaitForEndOfFrame ();
		}
		yield break;
	}

What I’m trying to figure out now is how to only get this rotation to happen to match the Y value of the destination marker’s rotation. Right now it’s trying to match all three and sometimes for whatever funky reason the marker’s x or z rotation values might get a little bit screwy and then my character ends up tipping over.

Setting the rotation manually can cause some issues if you want to constantly rotate an item.
It would be much safer to use Rotate. Unity Script Reference

EDIT:
I’d calculate the difference between the 2 angles and still use Rotate in a coroutine. This way you can control the speed at which the item rotates to it’s final destination. It also allows you to rotate with respect to different reference points(if needed). It will be much easier to control that trying to use slurp.