Low-temperature positron annihilation measurements have been performed on MgO single crystals containing either cation or anion vacancies. The temperature dependence of the S parameter is explained in terms of metastable self-trapped positrons which thermally hop through the crystal lattice. The experimental results are analyzed using a three-state trapping model assuming transitions from both delocalized and self-trapped states to deep trapped states at vacancies. The energy level of the self-trapped state was determined to be (62 +/- 5) meV above the delocalized state. The activation enthalpy for the hopping process of self-trapped positrons appears to depend on the kind of defect present in the crystals.