AprilTag is the state-of-the-art solution for pose estimation. The library itself already has pre-built functions to compute the marker position, given its size. The pose is estimated by homography decomposition and it's quite good if you don't go too far (2 or 3 meters for a 20cm marker). There is the C implementation made by the authors at University of Michigan (now AprilTag 2, look here) or you can go with the MIT C++ implementation of the original algorithm, here.
There are many kind of fiducial markers anyway, and it is very difficult to tell which should be the best for you. For a recent project in which I had to estimate the marker poses from a monocular camera mounted on a quadcopter I made a modified version of the AprilTag adding circles around the marker to improve pose stability. Also, I preferred to compute the pose using the Perspective-N-Point method, by using the solvePnP function included in OpenCV.
I see now this nice novelty, STag: you could also give it a try... seems promising, never used though, is really new (July 2017)