Character Rotation isn't precise, how to fix this? (Root Motion)

Hello! Hope that you know what to advise.

On first part of the image you can see RelativeMovementDirection_Function:
1.Set WorldRotation of ArrowComponent inside Runner_Character (in this case XVector is 0,0,0 because there is no input)
2.Then computate delta between Character rotation and Arrow rotation.
3.PrintString value.

On the second part:
Only one state is in AnimGraph - This state contains one simple animation: Character make one step then rotate 180 degrees. This animation is a part of MovementAnimsetPro from Epic Marketplace. So, I think it’s precise.
Animation is continue looping when it reaches the end. RootMotion is enabled.

On the third part:
You can see value - this is RelativeMovementDirecton_Function result. After fist rotation Character reaches 179.96… degrees

On the fouth part:
after another 4 cycles only 176.58…

Small value, but when I (for example) use rotation animation as part of patrol cycle the guard after 5 min change his direction to ~+25 degrees. Or when player simply move forward an then backward he doesnt moving trough start position. First I thought that I’m loosing some precision because the duration of cross-fade between states is too long, but in this case I’m using only one state, only one animation and still loosing some degrees.

The root is on (0,0,0), capsule has the same rotation as Character…

What is your opinion, what I’m doing wrong? And if you know how to have duration of cross-fade between states
more than 0 and don’t affect accuracy of rotation I will be glad to know this too! Thanks!

I´m having a similar problem