How to zoom and pan a video fluidly
Keyframes
Most video editors have some kind of keyframes feature. By using keyframes, you can change the values of the position and scale of the video for a single frame and have different values for another frame. The video editor will then calculate what the values should be for all the frames between these two keyframes so that these change gradually over time. This way you can make subtle and continuous changes to the framing of your video and you could use this to make your subject stay in the center of the frame without it being too distracting.

Tracking
In the case that manually setting all the values is too much work, professional video editing software often have some kind of tracking tool which can track the subject for you. You can then let the position of the video follow the path of the subject. But for just keeping the subject in the center, tracking would most likely be too much of a hassle.

So what kind of software could do this?
This would be possible to do in most modern professional video editors. But for example, you could do this in Premiere Pro. Make sure to check the documentation and help forums of the software for the specifics on how to do this and I also suggest looking up a tutorial. Also bare in mind that cropping part of the video will result in a loss of quality since there will be less pixels to be displayed, no matter what software you use.