Je pense le problème est que `\ifthenelse` ajoute un blanc au fin de `\numeroex`.
Une possibilité sans `\ifthenelse` :
%ECM
\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{lmodern}
\usepackage{ifthen}
\begin{document}
\newcounter{exo}
%on fait un numéro d'exercice sur deux chiffres
\setcounter{exo}{2}
%\def\numeroex{\ifthenelse{\value{exo}<10}{0\theexo}{\theexo}}
\def\numeroex{\ifnum\value{exo}<10 0\fi\arabic{exo}}
%on tente de réutiliser le numéro de l'exercice dans une autre macro
%il y a un fichier exo02.tex dans le répertoire de travail
\input{exo\numeroex} %:) ça veut
\numeroex
\end{document}