Suppose the sequence $\tag{$*$} 0 \longrightarrow \textrm{Hom}(M, A) \longrightarrow \textrm{Hom}(M, B) \longrightarrow \textrm{Hom}(M, C)$ is exact for all $M$. First, we must show that the sequence $\tag{$\dagger$} 0 \longrightarrow A \longrightarrow B \longrightarrow C$ is a (co)chain complex. So, take $M = A$ and consider $\textrm{id}_A$. We know $j_* \circ i_* = 0$, so in particular $j_* (i_* (\textrm{id}_A)) = j \circ i \circ \textrm{id}_A = 0$, so $j \circ i = 0$.
Next, we must show that $i$ is the kernel of $j$. Let $M$ be arbitrary and suppose $g : M \to B$ is a homomorphism such that $j \circ g = 0$. Then $j_* (g) = 0$, so exactness of $(*)$ means there is a unique homomorphism $f : M \to A$ such that $i_* (f) = g$, so $g = i \circ f$ for a unique $f : M \to A$. Hence $i : A \to B$ is indeed the kernel of $j : B \to C$, and therefore $(\dagger)$ is exact.
This argument works in any additive category. If we assume that we are in an abelian category then we only need to know that $(*)$ is exact for $M = A$, $M = \operatorname{Ker} i$, and $M = \operatorname{Ker} j$. Indeed, first suppose $k : M \to A$ is the kernel of $i : A \to B$. Then, $i \circ k = 0$; but there by exactness of $(*)$ that means $k = 0$, so $i$ is monic. Now suppose $g : M \to B$ is the kernel of $j : B \to C$. Then, $g \circ j = 0$, so by exactness of $(*)$ there is a unique $f : M \to A$ such that $i \circ f = g$; on the other hand, $j \circ i = 0$, so there is a unique $h : A \to M$ such that $g \circ h = i$; but $g$ is monic, so $g \circ h \circ f = g$ implies $h \circ f = \textrm{id}_M$, and $i$ is monic as well, so $i \circ f \circ h = i$ implies $f \circ h = \textrm{id}_A$, and therefore $(\dagger)$ is exact.