Transform.LookAt rotates my object moderately but not in the direction it should look at.

There are rotations happening that are really small but it almost faces the Y axis(2D) but never in the direction that the Player gameobject is moving in.

	GameObject target;

	void Start () {
		target = GameObject.FindWithTag ("Player");
	}

	void Update () {

		transform.LookAt (target.transform.position);	
	}

For 2D, you need to do something like this:

void Update () {
    Vector dir = target.transform.position - transform.position;
    float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
    transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
}

LookAt() rotates the positive ā€˜zā€™ side of an object to face the target, but that is not what you want for 2D. Note this code assumes that the right side of your sprite is considered the forward side. If the top of the sprite is considered forward, add 90 degrees to angle before calling AngleAxis().