[proofplan]
We verify the three defining properties of a Stein manifold directly from the embedding $X \subset \mathbb{C}^N$. The restrictions of the ambient coordinate functions separate points, and the complex submanifold condition gives local holomorphic coordinates by projecting to suitable ambient coordinates. For holomorphic convexity, the same restricted coordinate functions bound every holomorphic hull inside a closed polydisc; since $X$ is closed in $\mathbb{C}^N$, that bounded closed subset is compact.
[/proofplan]
[step:Restrict the ambient coordinate functions to $X$]
For each index $j \in \{1,\ldots,N\}$, let
\begin{align*}
Z_j: \mathbb{C}^N &\to \mathbb{C} \\
(z_1,\ldots,z_N) &\mapsto z_j
\end{align*}
be the $j$-th ambient coordinate function. Since $Z_j$ is holomorphic on $\mathbb{C}^N$ and the inclusion map
\begin{align*}
\iota: X &\to \mathbb{C}^N \\
x &\mapsto x
\end{align*}
is holomorphic by the definition of a complex submanifold, the restriction
\begin{align*}
f_j: X &\to \mathbb{C} \\
x &\mapsto Z_j(\iota(x))
\end{align*}
is holomorphic on $X$.
[/step]
[step:Separate distinct points of $X$ by restricted coordinates]
Let $p,q \in X$ satisfy $p \neq q$. Since $X$ is a subset of $\mathbb{C}^N$, the points have ambient coordinates
\begin{align*}
p = (p_1,\ldots,p_N), \qquad q = (q_1,\ldots,q_N),
\end{align*}
and $p \neq q$ implies that there exists an index $j \in \{1,\ldots,N\}$ such that $p_j \neq q_j$. For this index,
\begin{align*}
f_j(p) = p_j \neq q_j = f_j(q).
\end{align*}
Thus holomorphic functions on $X$ separate points of $X$, so $X$ is holomorphically separable.
[guided]
We need to verify the holomorphic separability condition in the definition of a Stein manifold: for any two distinct points of the manifold, some holomorphic function must take different values at those points.
Let $p,q \in X$ with $p \neq q$. Because $X$ is literally a subset of $\mathbb{C}^N$, we may write their ambient coordinates as
\begin{align*}
p = (p_1,\ldots,p_N), \qquad q = (q_1,\ldots,q_N).
\end{align*}
The inequality $p \neq q$ in $\mathbb{C}^N$ means that the ordered $N$-tuples differ, so there is an index $j \in \{1,\ldots,N\}$ for which $p_j \neq q_j$. The restricted coordinate function
\begin{align*}
f_j: X &\to \mathbb{C} \\
x &\mapsto Z_j(\iota(x))
\end{align*}
is holomorphic by the previous step, and for the chosen index it satisfies
\begin{align*}
f_j(p) = p_j \neq q_j = f_j(q).
\end{align*}
Therefore the family $\mathcal{O}(X)$ separates points of $X$.
[/guided]
[/step]
[step:Obtain local coordinates from suitable ambient coordinate projections]
Let $x \in X$, and let $n = \dim_{\mathbb{C}} X$. Since $X$ is a complex submanifold of $\mathbb{C}^N$, the tangent space $T_xX$ is an $n$-dimensional complex linear subspace of $T_x\mathbb{C}^N \cong \mathbb{C}^N$, where the identification is induced by the standard global coordinate chart on $\mathbb{C}^N$. Choose complex-linear coordinates on $\mathbb{C}^N$ so that the projection
\begin{align*}
\pi: \mathbb{C}^N &\to \mathbb{C}^n \\
(w_1,\ldots,w_N) &\mapsto (w_1,\ldots,w_n)
\end{align*}
has differential $d\pi_x|_{T_xX}: T_xX \to \mathbb{C}^n$ a complex-linear isomorphism.
The restricted map
\begin{align*}
\varphi: X &\to \mathbb{C}^n \\
y &\mapsto \pi(\iota(y))
\end{align*}
is holomorphic. Since $d\varphi_x = d\pi_x|_{T_xX}$ is an isomorphism, the Holomorphic Inverse Function Theorem gives an open neighbourhood $U \subset X$ of $x$ such that $\varphi|_U: U \to \varphi(U)$ is biholomorphic onto an open subset $\varphi(U) \subset \mathbb{C}^n$. Hence $X$ has holomorphic local coordinates obtained from global holomorphic functions.
[guided]
We now verify the local-coordinate condition in the definition of a Stein manifold. Fix a point $x \in X$, and write $n = \dim_{\mathbb{C}} X$. Because $X$ is a complex submanifold of $\mathbb{C}^N$, its tangent space $T_xX$ is an $n$-dimensional complex vector subspace of $T_x\mathbb{C}^N$. The standard global coordinate chart on $\mathbb{C}^N$ identifies $T_x\mathbb{C}^N$ with $\mathbb{C}^N$.
We need $n$ holomorphic functions on $X$ whose differentials form a complex-linear coordinate system at $x$. Choose a complex-linear change of ambient coordinates so that the coordinate projection
\begin{align*}
\pi: \mathbb{C}^N &\to \mathbb{C}^n \\
(w_1,\ldots,w_N) &\mapsto (w_1,\ldots,w_n)
\end{align*}
restricts to a complex-linear isomorphism
\begin{align*}
d\pi_x|_{T_xX}: T_xX \to \mathbb{C}^n.
\end{align*}
This choice is possible because every $n$-dimensional complex vector subspace of $\mathbb{C}^N$ admits $n$ independent complex-linear coordinate functionals after a complex-linear change of coordinates.
Define the restricted projection
\begin{align*}
\varphi: X &\to \mathbb{C}^n \\
y &\mapsto \pi(\iota(y)).
\end{align*}
The map $\varphi$ is holomorphic because $\iota: X \to \mathbb{C}^N$ and $\pi: \mathbb{C}^N \to \mathbb{C}^n$ are holomorphic. Its differential at $x$ is precisely
\begin{align*}
d\varphi_x = d\pi_x|_{T_xX},
\end{align*}
which is a complex-linear isomorphism by construction. Therefore the Holomorphic Inverse Function Theorem applies and gives an open neighbourhood $U \subset X$ of $x$ such that
\begin{align*}
\varphi|_U: U \to \varphi(U)
\end{align*}
is biholomorphic onto an open subset $\varphi(U) \subset \mathbb{C}^n$. Thus the components of $\varphi$ give holomorphic local coordinates near $x$.
[/guided]
[/step]
[step:Trap every holomorphic hull inside a compact ambient polydisc]
Let $K \subset X$ be compact. Define the holomorphic hull of $K$ in $X$ by
\begin{align*}
\widehat{K}_{\mathcal{O}(X)}
=
\{x \in X : |g(x)| \leq \sup_{y \in K} |g(y)| \text{ for every } g \in \mathcal{O}(X)\}.
\end{align*}
For each $j \in \{1,\ldots,N\}$, define
\begin{align*}
R_j = \sup_{y \in K} |f_j(y)|.
\end{align*}
The number $R_j$ is finite because $K$ is compact and $f_j$ is continuous. If $x \in \widehat{K}_{\mathcal{O}(X)}$, then applying the hull inequality to $g=f_j$ gives
\begin{align*}
|f_j(x)| \leq R_j
\end{align*}
for every $j \in \{1,\ldots,N\}$. Hence
\begin{align*}
\widehat{K}_{\mathcal{O}(X)}
\subset
X \cap P,
\end{align*}
where
\begin{align*}
P =
\{z \in \mathbb{C}^N : |Z_j(z)| \leq R_j \text{ for every } j \in \{1,\ldots,N\}\}.
\end{align*}
The set $P$ is compact in $\mathbb{C}^N$ by the Heine-Borel Theorem, and $X \cap P$ is compact because $X$ is closed in $\mathbb{C}^N$.
[guided]
The goal is holomorphic convexity: for every compact set $K \subset X$, its holomorphic hull inside $X$ must be compact. The useful observation is that the coordinate functions already force the hull to stay inside a bounded ambient polydisc.
Let $K \subset X$ be compact. Define
\begin{align*}
\widehat{K}_{\mathcal{O}(X)}
=
\{x \in X : |g(x)| \leq \sup_{y \in K} |g(y)| \text{ for every } g \in \mathcal{O}(X)\}.
\end{align*}
For each index $j \in \{1,\ldots,N\}$, set
\begin{align*}
R_j = \sup_{y \in K} |f_j(y)|.
\end{align*}
Since $f_j$ is holomorphic, it is continuous; since $K$ is compact, the continuous function $|f_j|: K \to 0,\infty)$ has finite supremum.
Now take $x \in \widehat{K}_{\mathcal{O}(X)}$. By the defining inequality for the hull, applied to the particular holomorphic function $g=f_j$, we get
\begin{align*}
|f_j(x)| \leq \sup_{y \in K} |f_j(y)| = R_j.
\end{align*}
This holds for every $j \in \{1,\ldots,N\}$. Therefore $x$ lies in the ambient closed polydisc
\begin{align*}
P =
\{z \in \mathbb{C}^N : |Z_j(z)| \leq R_j \text{ for every } j \in \{1,\ldots,N\}\}.
\end{align*}
Thus
\begin{align*}
\widehat{K}_{\mathcal{O}(X)}
\subset
X \cap P.
\end{align*}
The set $P$ is closed and bounded in the finite-dimensional Euclidean space $\mathbb{C}^N \cong \mathbb{R}^{2N}$, hence compact by the [Heine-Borel Theorem. Because $X$ is closed in $\mathbb{C}^N$, the intersection $X \cap P$ is a closed subset of the compact set $P$, and is therefore compact.
[/guided]
[/step]
[step:Show the holomorphic hull is closed in the compact trap]
For every holomorphic function $g: X \to \mathbb{C}$, define the closed set
\begin{align*}
A_g =
\{x \in X \cap P : |g(x)| \leq \sup_{y \in K} |g(y)|\}.
\end{align*}
Since $g$ is continuous, $A_g$ is closed in $X \cap P$. By the definition of the holomorphic hull,
\begin{align*}
\widehat{K}_{\mathcal{O}(X)}
=
\bigcap_{g \in \mathcal{O}(X)} A_g.
\end{align*}
Thus $\widehat{K}_{\mathcal{O}(X)}$ is closed in $X \cap P$. Since $X \cap P$ is compact, $\widehat{K}_{\mathcal{O}(X)}$ is compact. Therefore $X$ is holomorphically convex.
[guided]
We have shown that the hull is contained in a compact set $X \cap P$. Containment alone is not enough: a subset of a compact set need not be compact unless it is closed. We now prove closedness directly from the definition of the hull.
Let $g: X \to \mathbb{C}$ be holomorphic. Define
\begin{align*}
A_g =
\{x \in X \cap P : |g(x)| \leq \sup_{y \in K} |g(y)|\}.
\end{align*}
The function $g$ is holomorphic, hence continuous, so the map $x \mapsto |g(x)|$ is continuous from $X$ to $[0,\infty)$. The interval
\begin{align*}
[0,\sup_{y \in K} |g(y)|]
\end{align*}
is closed in $[0,\infty)$. Therefore $A_g$ is closed in $X \cap P$ as the preimage of this closed interval under a continuous map.
By definition, a point $x \in X \cap P$ belongs to the holomorphic hull exactly when it satisfies the inequality defining $A_g$ for every holomorphic function $g \in \mathcal{O}(X)$. Hence
\begin{align*}
\widehat{K}_{\mathcal{O}(X)}
=
\bigcap_{g \in \mathcal{O}(X)} A_g.
\end{align*}
An arbitrary intersection of closed subsets of $X \cap P$ is closed in $X \cap P$, so $\widehat{K}_{\mathcal{O}(X)}$ is closed in $X \cap P$. Since $X \cap P$ is compact, every closed subset of it is compact. Therefore $\widehat{K}_{\mathcal{O}(X)}$ is compact, which is precisely holomorphic convexity.
[/guided]
[/step]
[step:Combine the three Stein conditions]
The previous steps show that $X$ is holomorphically separable, has holomorphic local coordinates, and is holomorphically convex. By the definition of a Stein manifold, $X$ is a Stein manifold.
[/step]