Alternative mit `keyval`:
\documentclass[]{article}
\usepackage{keyval}
\makeatletter
\newcommand*\@grundzahl{}
\newcommand*\@hochzahl{}
\define@key{cis/potenz}{grundzahl}{\def\@grundzahl{#1}}
\define@key{cis/potenz}{hochzahl}{\def\@hochzahl{#1}}
\newcommand\potenz[1][]
{%
\begingroup
\setkeys{cis/potenz}{#1}%
\ensuremath
{%
\ifx\@grundzahl\@empty\else\@grundzahl\fi
\ifx\@hochzahl\@empty\else^\@hochzahl\fi
\ifx\@hochzahl\@empty\else^{\@hochzahl}\fi
}%
\endgroup
}
\makeatother
\begin{document}
\potenz[grundzahl=a,hochzahl=b]
\potenz[grundzahl=a]
\potenz[hochzahl=b]
\end{document}