[proofplan]
We establish a bijection between stability of the filtration and the stabilisation of a certain ascending chain of $R^*$-submodules $M_n^*$ of $M^*$. Each $M_n^*$ is built from the first $n$ filtration terms together with the $\mathfrak{a}$-adic tails. For $(1) \Rightarrow (2)$: $R^*$ is noetherian (being a finitely generated algebra over the noetherian ring $R$), so $M^*$ is a noetherian $R^*$-module, forcing the chain $(M_n^*)$ to stabilise. For $(2) \Rightarrow (1)$: stability causes $(M_n^*)$ to stabilise, so $M^* = M_{n_0}^*$ is generated over $R^*$ by the finitely generated $R$-module $\bigoplus_{r=0}^{n_0} M_r$.
[/proofplan]
[step:Verify that each $M_n$ is a finitely generated $R$-module]
Since $R$ is noetherian and $M$ is a finitely generated $R$-module, $M$ is a noetherian $R$-module by [Modules over Noetherian Rings](/theorems/2903). Every submodule of a noetherian module is finitely generated. Since each $M_n$ is a submodule of $M$ (as part of the filtration $M = M_0 \supseteq M_1 \supseteq \cdots$), each $M_n$ is a finitely generated $R$-module.
[/step]
[step:Construct the ascending chain $(M_n^*)_{n \geq 0}$ and relate its stabilisation to stability of the filtration]
For each $n \geq 0$, define the $R^*$-submodule of $M^*$ given by
\begin{align*}
M_n^* = M_0 \oplus M_1 \oplus \cdots \oplus M_n \oplus \mathfrak{a} M_n \oplus \mathfrak{a}^2 M_n \oplus \cdots = \bigoplus_{r=0}^{n} M_r \oplus \bigoplus_{i=1}^{\infty} \mathfrak{a}^i M_n.
\end{align*}
This is a graded $R^*$-submodule of $M^* = \bigoplus_{r \geq 0} M_r$, where the component of $M_n^*$ in degree $r$ is $M_r$ for $r \leq n$ and $\mathfrak{a}^{r-n} M_n$ for $r > n$.
Since $\mathfrak{a} M_n \subseteq M_{n+1}$ (the filtration property), we have $\mathfrak{a}^{r-n} M_n \subseteq \mathfrak{a}^{r-n-1} M_{n+1}$ for $r > n+1$, and $\mathfrak{a} M_n \subseteq M_{n+1}$, so $M_n^* \subseteq M_{n+1}^*$. The chain $(M_n^*)_{n \geq 0}$ is ascending.
We claim: this chain stabilises at $n_0$ if and only if the filtration $(M_n)$ is stable with threshold $n_0$. Indeed, $M_n^* = M_{n+1}^*$ holds if and only if their degree-$(n+1)$ components agree: $\mathfrak{a} M_n = M_{n+1}$ (for $r = n+1$, the degree-$(n+1)$ component of $M_n^*$ is $\mathfrak{a} M_n$, while that of $M_{n+1}^*$ is $M_{n+1}$). Once $\mathfrak{a} M_n = M_{n+1}$ holds, the higher-degree components also agree: $\mathfrak{a}^{r-n} M_n = \mathfrak{a}^{r-n-1}(\mathfrak{a} M_n) = \mathfrak{a}^{r-n-1} M_{n+1}$ for all $r > n+1$. Therefore $M_n^* = M_{n+1}^*$ if and only if $\mathfrak{a} M_n = M_{n+1}$.
[guided]
We need to bridge between stability of $(M_n)$ and finite generation of $M^*$. The intermediary is the ascending chain $(M_n^*)_{n \geq 0}$ inside $M^*$.
Recall that $R^* = \bigoplus_{n \geq 0} \mathfrak{a}^n$ (the Rees algebra of $\mathfrak{a}$) and $M^* = \bigoplus_{n \geq 0} M_n$ (the Rees module of the filtration). For each $n \geq 0$, the module $M_n^*$ agrees with $M^*$ in degrees $\leq n$, but replaces the given filtration terms $M_{n+1}, M_{n+2}, \dots$ with the $\mathfrak{a}$-adic tails $\mathfrak{a} M_n, \mathfrak{a}^2 M_n, \dots$ It is the "best approximation" to $M^*$ that is determined by the first $n+1$ terms of the filtration and the $\mathfrak{a}$-adic structure.
Why is $(M_n^*)$ ascending? Because $\mathfrak{a} M_n \subseteq M_{n+1}$ (the filtration property), so for $r > n$, the degree-$r$ component $\mathfrak{a}^{r-n} M_n$ of $M_n^*$ is contained in $\mathfrak{a}^{r-n-1} M_{n+1}$, the degree-$r$ component of $M_{n+1}^*$.
The key observation: $M_n^* = M_{n+1}^*$ if and only if $\mathfrak{a} M_n = M_{n+1}$. Comparing degree-$(n+1)$ components: the degree-$(n+1)$ component of $M_n^*$ is $\mathfrak{a} M_n$, while that of $M_{n+1}^*$ is $M_{n+1}$. So equality forces $\mathfrak{a} M_n = M_{n+1}$. Conversely, if $\mathfrak{a} M_n = M_{n+1}$, then for $r > n+1$: $\mathfrak{a}^{r-n} M_n = \mathfrak{a}^{r-n-1}(\mathfrak{a} M_n) = \mathfrak{a}^{r-n-1} M_{n+1}$, which is the degree-$r$ component of $M_{n+1}^*$.
Therefore, the chain $(M_n^*)$ stabilises at $n_0$ if and only if $\mathfrak{a} M_n = M_{n+1}$ for all $n \geq n_0$, which is exactly the stability condition.
[/guided]
[/step]
[step:Prove $(1) \Rightarrow (2)$: finite generation of $M^*$ implies stability]
Assume $M^*$ is a finitely generated $R^*$-module. Since $R$ is noetherian and $R^*$ is generated as an $R$-algebra by the elements of $\mathfrak{a}$ (which is a finitely generated ideal), the [Hilbert Basis Theorem](/theorems/2904) implies that $R^*$ is a noetherian ring. A finitely generated module over a noetherian ring is noetherian by [Modules over Noetherian Rings](/theorems/2903), so $M^*$ is a noetherian $R^*$-module. Every ascending chain of submodules of a noetherian module stabilises. Applying this to the ascending chain $(M_n^*)_{n \geq 0}$ inside $M^*$, the chain stabilises. By the equivalence established in the previous step, the filtration $(M_n)$ is stable.
[guided]
Assume $M^*$ is a finitely generated $R^*$-module. We want to show that the filtration $(M_n)$ is stable.
First, we need $R^*$ to be noetherian. Recall $R^* = R \oplus \mathfrak{a} \oplus \mathfrak{a}^2 \oplus \cdots$ is the Rees algebra. Since $R$ is noetherian, the ideal $\mathfrak{a}$ is finitely generated, say $\mathfrak{a} = (a_1, \dots, a_s)$. Then $R^*$ is generated as an $R$-algebra by the degree-one elements $a_1, \dots, a_s$, giving a surjective $R$-algebra homomorphism $R[T_1, \dots, T_s] \to R^*$ sending $T_i \mapsto a_i$. By the [Hilbert Basis Theorem](/theorems/2904), $R[T_1, \dots, T_s]$ is noetherian, and a quotient of a noetherian ring is noetherian, so $R^*$ is noetherian.
Since $M^*$ is finitely generated over the noetherian ring $R^*$, it is a noetherian $R^*$-module by [Modules over Noetherian Rings](/theorems/2903). The ascending chain $(M_n^*)_{n \geq 0}$ of $R^*$-submodules of $M^*$ must therefore stabilise: there exists $n_0$ with $M_n^* = M_{n_0}^*$ for all $n \geq n_0$. By the equivalence from the previous step, $\mathfrak{a} M_n = M_{n+1}$ for all $n \geq n_0$, so the filtration is stable.
[/guided]
[/step]
[step:Prove $(2) \Rightarrow (1)$: stability implies finite generation of $M^*$]
Assume the filtration $(M_n)$ is stable with threshold $n_0$: $\mathfrak{a} M_n = M_{n+1}$ for all $n \geq n_0$. By the equivalence from the second step, $M_n^* = M_{n_0}^*$ for all $n \geq n_0$. Since $M^* = \bigcup_{n \geq 0} M_n^*$ (any element of $M^*$ lies in some $M_n^*$), we conclude $M^* = M_{n_0}^*$.
The module $M_{n_0}^*$ is generated over $R^*$ by its components in degrees $0$ through $n_0$, namely $Q = \bigoplus_{r=0}^{n_0} M_r$: for degree $r > n_0$, the component $\mathfrak{a}^{r-n_0} M_{n_0}$ is obtained by multiplying $M_{n_0}$ by degree-$(r-n_0)$ elements of $R^*$.
Each $M_r$ is a finitely generated $R$-module (by the first step). The finite direct sum $Q = \bigoplus_{r=0}^{n_0} M_r$ is therefore finitely generated as an $R$-module. Let $S$ be a finite generating set for $Q$ over $R$. Since $R \subseteq R^*$ (as the degree-zero component), the set $S$ also generates $Q$ over $R^*$. Since $Q$ generates $M^* = M_{n_0}^*$ over $R^*$, the finite set $S$ generates $M^*$ as an $R^*$-module.
[guided]
Assume the filtration $(M_n)$ is stable. We want to show $M^*$ is finitely generated over $R^*$.
By stability, there exists $n_0 \geq 0$ with $\mathfrak{a} M_n = M_{n+1}$ for all $n \geq n_0$. The chain $(M_n^*)$ stabilises at $n_0$, so $M^* = \bigcup_{n \geq 0} M_n^* = M_{n_0}^*$.
What does $M_{n_0}^*$ look like? Its degree-$r$ component is $M_r$ for $r \leq n_0$ and $\mathfrak{a}^{r-n_0} M_{n_0}$ for $r > n_0$. The second type is obtained from $M_{n_0}$ by multiplying by powers of $\mathfrak{a}$, which is exactly the action of $R^*$. So $M_{n_0}^*$ is generated as an $R^*$-module by the elements in degrees $\leq n_0$, i.e., by $Q = \bigoplus_{r=0}^{n_0} M_r$.
It remains to show $Q$ has a finite generating set. Each $M_r$ is finitely generated over $R$ (established in the first step). A finite direct sum of finitely generated modules is finitely generated, so $Q$ is finitely generated over $R$. Any finite $R$-generating set for $Q$ is also an $R^*$-generating set for $M^* = M_{n_0}^*$, since multiplying by the degree-zero component $R$ of $R^*$ already produces all of $Q$, and then multiplication by higher-degree components of $R^*$ produces the rest of $M^*$.
[/guided]
[/step]