Is there a way to obtain the impulse response of a discrete system by just knowing it's response to the discrete unit step function?
A simpler version of Phonon's answer is as follows.

Suppose that $y$ denotes the response of the system to the unit step function.
Then, as discussed in this answer,
in general, $y$ is the sum of scaled and time-delayed copies of the impulse
response, and in this particular case, no scaling is required; only time
delays.  Thus,
$$\begin{align}
y[0] &amp;= h[0]\\
y[1] &amp;= h[1] + h[0]\\
y[2] &amp;= h[2] + h[1] + h[0]\\
y[3] &amp;= h[3] + h[2] + h[1] + h[0]\\
\vdots~ &amp;= ~\vdots
\end{align}$$
where each column on the right is a (unscaled and) time-delayed 
impulse response.
Thus, we easily get that
$$\begin{align}
h[0] &amp;= y[0]\\
h[1] &amp;= y[1]-y[0]\\
h[2] &amp;= y[2]-y[1]\\
\vdots~ &amp;= ~\vdots\\
h[n] &amp;~= y[n] - y[n-1]\\
\vdots~ &amp;= ~\vdots
\end{align}$$
with nary a mention of filters, inverses, convolutions, integration, operators
and the like, just simple consequences of
the definition of linear time-invariant system.