wantedRotationX = Mathf.Lerp (transform.position.x+transform.forward.x, target.position.x, rotateSpeed * Time.deltaTime);
wantedRotationZ= Mathf.Lerp (transform.position.z+transform.forward.z target.position.z, rotateSpeed * Time.deltaTime);
transform.LookAt (new Vector3 (wantedRotationX, transform.position.y, wantedRotationZ));
とでもしとけば何とかなるかもしれない。
適切な方法かはわからんが。