How do I smooth hexagonal shapes more into cylinders? NOTE: I'm new to Blender/3D modeling, and this is my first project.

Here is a mesh of a clone trooper from a game from 2005 that I'm trying to "modernize." This hexagonal prism on his back is supposed to be more of a cylinder, but due to it's low-poly nature, it's obviously not. I've tried subdividing and smoothing the rectangular faces, but it bows the cylinder out in the middle as well as messing up the 90 degree angles between the rectangular faces and the hexagonal faces (possibly in an attempt to smooth those angles? which I don't want).

What's the best way to achieve a more cylindrical shape without having to manually bisect each face and translate the sides diagonally to make it more round? (If this is the only way, how can I perfectly translate the sides on the X and Z-axis EQUALLY so that I don't have to eyeball it?)
In edit mode, use Ctrl-R to add loop cuts to the sides of the 6 sided cylinder. Once you have an even division, select the vertices of the cap or end hexagon. Using Loop Tools addon, choose LoopTools> Circle, and the new vertices will form a circle. Repeat for the other hexagon.
edit:
Here is how I would approach it.
1. Original 2. Tris to quads 3. Delete the vert in center of the hexagon 4. ctrl-R loop cut the faces 5. LoopTools Circle to get the round 6. Extrude and carefully fill with quads