How can I make object movement correlate to animation being performed?
This isn't a perfect solution that automatically calculates everything for you, but maybe this will help. Use an empty plain axis parented to the character at the contact point to find the change in distance.

Press Shift+A to add an empty origin. Move it to the desired contact point and parent it to the character. If the axis isn't moving with the mesh when you're playing the animation, Tab into edit mode for the character mesh, and add the empty axis there. Since its now a part of the character mesh, the rig animations will affect it as well.

If you try to directly view the axis' location in the Item's property panel, you'll see that it doesn't actually change (due to that being its position relative to the parent).

To get around this, press ShiftS and select Cursor to Selected. That will move the 3D cursor to the axis' location, allowing you to see the axis' location via the 3D cursor location. To view the 3D cursor's location, press N to bring up a side menu, and click on the View tab.

By noting down the XY locations at various key points, you can find the exact change in position you want the character to follow by subtracting.

More complex animations such as cartwheels will get rather dicey as you want your character to be rotating about a different point. I'd suggest manipulating the pivot point while rotating the armature so that you can rotate the entire mesh around desired points.  This can be done by clicking one of the small buttons at the top of the screen shown below.



After that, I'd use a similar method of parenting empty axes to your mesh to find the displacement at various key points.