RotateTowards will work fine, it doesn't exactly impose anything - it takes a vector (use transform.up instead of forward as in the sample), and then get it to rotate towards your target. After you get the rotated vector, simply set it like this:
transform.eulerAngles = new Vector3(0, 0, Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg);