Sprite is slightly rotating on its own - Unity 2D

Sorry for the chaotic topic name.
I’m struggling with a proper rotation of one of my sprites.

I don’t know why but every time the sprite stop its movement, rotation starts to move a little. I hope that below .gif will help you understand what I mean.


As you can see rotation is working fine till I stop moving. Then, sprite is slightly rotating which drives me crazy as it collides with my game’s main concept.

float vertMov = Input.GetAxis(“Vertical”);
float horMov = Input.GetAxis(“Horizontal”);

	if(vertMov != 0 || horMov != 0)
		movement.x = vertMov;
		movement.y = horMov;

		float angle = Mathf.Atan2(movement.y, movement.x) * Mathf.Rad2Deg;

		if(vertMov != 0 && horMov != 0)
			if(movement.magnitude > 1)
				movement = movement.normalized;

		Quaternion q = Quaternion.AngleAxis(angle, Vector3.back);

		Vector3 viewPos = Camera.main.WorldToViewportPoint(transform.position);
		viewPos.x = Mathf.Clamp01(viewPos.x);
		viewPos.y = Mathf.Clamp01(viewPos.y);
		transform.position = Camera.main.ViewportToWorldPoint(viewPos);

		transform.Translate(Vector2.up * movement.sqrMagnitude * speed *  Time.deltaTime);
		transform.rotation = Quaternion.Slerp(transform.rotation, q, rotationSpeed * Time.deltaTime);

@Ryudo_PL If you’re not using physics on your character (like gravity and such) then you can just check the “Is Kinematic” box on the Rigid Body component. I don’t think that’s the problem though. Are you using a controller or keyboard for input, and if you don’t use a controller, do you plan to?