Quaternion lerp issue?

So I have a gameobject and when it changes rotations on the z axis, I want it to be smooth but quaternion.lerp does not seem to work well. I am not sure what I am doing wrong or if there is a better way to get a smooth transition from one rotation to another. Thanks for ant help.

// Part of the spawner script

IEnumerator dividerRotationDelay (GameObject _circInst) {
		yield return new WaitForSeconds (2.2f);
		var customRotation = Random.Range (-120, 120);
		newRotaion = Quaternion.Euler (0, 0, _circInst.transform.rotation.eulerAngles.z + customRotation);
		oldRotaion = Quaternion.Euler (0, 0, divider.transform.rotation.eulerAngles.z);

// lerp script attached to the rotating gameobject

	void Update () {
		this.transform.rotation = Quaternion.Lerp (spawner.oldRotaion, spawner.newRotaion, Time.deltaTime * 0.9f);

You have a problem with time. You would need to have another variable something like sTime. In the spawner script, set it to Time.time. In the lerp script change Time.deltaTime * 0.9f to (Time.time - spawner.sTime) * speedMultiplier where speedMultiplier can be anything you like to adjust speed.