In the following example code I defined two new commands allowing you to change the indentation; simply enclose the desired fragment using \bindent, \eindent; the length \myindent controls the indent amount:
\documentclass{article}
\usepackage{algorithm,algorithmic}
\usepackage{caption}
\newlength\myindent
\setlength\myindent{2em}
\newcommand\bindent{%
\begingroup
\setlength{\itemindent}{\myindent}
\addtolength{\algorithmicindent}{\myindent}
}
\newcommand\eindent{\endgroup}
\begin{document}
\begin{algorithm}[H]
\caption*{my algorithm}
\begin{algorithmic}
\STATE \textbf{Stage one:} this is stage one
\bindent
\FORALL{i}
\STATE do something
\ENDFOR
\eindent
\STATE \textbf{Stage two:} this is stage two
\bindent
\STATE Update the trie:
\FORALL{j}
\STATE do something
\ENDFOR
\eindent
\end{algorithmic}
\end{algorithm}
\end{document}

Some comments to the code:
\newlength\myindent % define a new length \myindent
\setlength\myindent{6em} % assign the length 2em to \myindet
\newcommand\bindent{%
\begingroup % starts a group (to keep changes local)
\setlength{\itemindent}{\myindent} % set itemindent (algorithmic internally uses a list) to the value of \mylength
\addtolength{\algorithmicindent}{\myindent} % adds \mylength to the default indentation used by algorithmic
}
\newcommand\eindent{\endgroup} % closes a group