\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\frametitle<1>{Some title}
\frametitle<2>{Another title}
\begin{tikzpicture}
\draw[red, very thick](0, 0) -- (3, 0);
\onslide<1>{
\draw(-1, 1) -- (2, 1);
}
\onslide<2>{
\draw(-2, 2) -- (1, 2);
}
\end{tikzpicture}
\end{frame}
\end{document}

The perhaps simplest option I see is to use an overlay picture in the case the of titles which occupy different amounts of vertical space.
\documentclass{beamer}
\usepackage{tikz}
\begin{document}
\begin{frame}
\frametitle<1>{Some title}
\frametitle<2>{Another title which is very very long and spans two lines
or even more}
\begin{tikzpicture}[overlay,remember picture,shift={([yshift=-1cm]current page.center)}]
\draw[red, very thick](0, 0) -- (3, 0);
\onslide<1>{
\draw(-1, 1) -- (2, 1);
}
\onslide<2>{
\draw(-2, 2) -- (1, 2);
}
\end{tikzpicture}
\end{frame}
\end{document}

An IMHO better solution would be to write the data to the aux file and restore it. This also allows you to work with \pause in tikzpictures without inducing jumps, BTW. However, you do not seem to be interested in such solutions (which is perfectly fine, of course), which is why I am not spelling this out here.