Since you don't need to number each row, use an array:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{equation*}
\begin{array}{@{}r@{{}\mathrel{}}c@{\mathrel{}{}}l@{}}
(-m)+m & \overset{\text{Ax 1.1 (i)}}{=} & m+(-m)\\
& \overset{\text{Ax 1.4}}{=} & 0
\end{array}
\end{equation*}
\end{document}
Notice that \overset is preferable to \stackrel and that \text will preserve spaces. Between the first and the second column I put the space normally used for a relation symbol (produced by {}\mathrel{}) and similarly for the other intercolumn space. If you want that the text is upright whatever is the context the formula is in (perhaps embedded in something in italics), use \textup instead of \text.
Here's the result:

However, this seems not particularly legible; usually I prefer setting the justification on the right:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\begin{align*}
(-m)+m &= m+(-m) && \text{by Ax 1.1 (i)} \\
&= 0 && \text{by Ax 1.4}
\end{align*}
\end{document}

\mathclap{}command to the stuff you put over the '=' helps? You can find it in themathtoolspackage – Jakob van Bethlehem Sep 06 '12 at 06:53