I do not know if this goes in the right direction. However, raising circles on specific overlays can be achieved with something along the lines
```
\foreach \x [count=\y] in {1,...,\numdots}{%
\pgfmathtruncatemacro{\mycf}{{\cols}[\x-1]}%
\ifnum\y>1\relax\;\fi\alt<\y>{%
\raisebox{1ex}{\mycircle[\mycf]}}{%
\mycircle[\mycf]}%
}
```
Further, to sequentially add `+` and `-` signs, one can create a macro (called `\UncoverList` below) that takes a list and adds the items of the list one by one. I tried to add the lists to get something that resembles your results, but did not check carefully if this reproduces your results precisely.
```
\documentclass[xcolor={rgb}]{beamer}
\beamertemplatenavigationsymbolsempty
\setbeamersize{text margin left=10mm,text margin right=5mm}
\setbeamertemplate{frametitle}[default][center]
\usepackage{circledsteps}
\usepackage{tikz}
\usetikzlibrary{matrix}
\newcommand{\mycircle}[1][1]{%
\Circled[fill color={foo!![#1]},outer color=blue!60]{\phantom{\mbox{o}}}}%
\def\numcolors{4}
\pgfmathparse{1/\numcolors}%
\definecolorseries{foo}{hsb}{step}{red!90!black}{\pgfmathresult,0,0}
\resetcolorseries[\numcolors]{foo}%
\makeatletter
\newcommand{\UncoverList}[2][]{\c@pgf@counta0\relax
\pgfutil@for\my@item:={#2}\do{%
\advance\c@pgf@counta by1%
\only<\c@pgf@counta->{\my@item}%
}}
\makeatother
\begin{document}
\begin{frame}
\frametitle{Using \texttt{circledsteps}}
\centering
\begin{tikzpicture}
\node (crow) {\def\numdots{8}%
\def\cols{1,2,3,4,1,2,3,4}
\foreach \x [count=\y] in {1,...,\numdots}{%
\pgfmathtruncatemacro{\mycf}{{\cols}[\x-1]}%
\ifnum\y>1\relax\;\fi\alt<\y>{%
\raisebox{1ex}{\mycircle[\mycf]}}{%
\mycircle[\mycf]}%
}%
};
\path ([yshift=-1cm,xshift=-1cm]crow.south)
[cond/.code={%
\ifnum\pgfmatrixcurrentcolumn=1\relax
\else
\tikzset{fill=blue!10,draw=white,text width=3.2em,align=left}%
\fi}]
node[below right,matrix of nodes,
ampersand replacement=\&,nodes in empty cells,
nodes={text height=1.6em,text depth=0.2ex,cond}
] (mat1) {%
$h_1$ \& $\begin{array}[b]{l}
\scriptstyle\vphantom{1}\UncoverList{,-,-,,+}\\
\scriptstyle\vphantom{1}\end{array}$ \& \&
$\begin{array}[b]{l}
\scriptstyle\vphantom{1}\UncoverList{,,+}\\
\scriptstyle\vphantom{1}\UncoverList{,,,,,,+}\end{array}$\\
$h_2$ \& $\begin{array}[b]{l}
\scriptstyle\vphantom{1}\UncoverList{,,,,+}\\
\scriptstyle\vphantom{1}\end{array}$ \& \&
$\begin{array}[b]{l}
\scriptstyle\vphantom{1}\UncoverList{,-,,-,,,+}\\
\scriptstyle\vphantom{1}\UncoverList{,,-,,,+}\end{array}$\\
};
\path ([xshift=0.8cm]mat1.south east)
[cond/.code={%
\ifnum\pgfmatrixcurrentrow=1\relax
\tikzset{fill=blue!50,text=white}%
\else
\ifodd\pgfmatrixcurrentrow
\tikzset{fill=blue!10}%
\else
\tikzset{fill=blue!20}%
\fi
\fi}]
node[above right,matrix of math nodes,
ampersand replacement=\&,nodes in empty cells,
cells={nodes={draw=white,minimum width=3em,
text height=0.8em,text depth=0.25ex,cond}}] (mat1) {%
\& h_1,g_1 \& h_2,g_2\\[0.2ex]
\mycircle[1] \& 2,+\& 1,+\\
\mycircle[2] \& 3,-\& 2,+\\
\mycircle[3] \& 1,+\& 3,-\\
\mycircle[4] \& 2,-\& 3,+\\
};
\end{tikzpicture}
\end{frame}
\end{document}
```
![ani.gif](/image?hash=b398883acb40b3c59aaf25117744f79547a0bb5572a7e96a628fc404b63694ad)