Well, in the case of the circle, I would cut your circle evenly so the end vertices would be on one axis, in the picture shown below. (figure 1)
If you add a circle with an odd number of sides, just rotating it 45 degrees counter-clockwise will reveal its symmetry. (figure 2) [Remember press CTRL+A and apply ‘Rotation to ObData’ to convert your adjusted mesh into the new REAL mesh].
Then press the ‘Snap when CTRL is held’ button in the 3d viewport header (Or press Shift+Tab) To turn on more advanced snapping tools. Some settings will appear beside the ‘snap’ toggle button in the 3d viewport header. Change ‘snapping mode’ to ‘edge’ and ‘snap target mode’ to ‘closest’. Then start moving your circle mesh, making sure to select it near the part of the circle you want to do the snapping. If you move your circle near any edges on another mesh, it will stick to those edges instantly. (figure 3)