Q:

Explanation how uln2003a works

This is a schematic for the an internal input/output pins of an uln2003a and other such array transistor.
From what I understand, when no voltage is present on the first transistor, the current will flow from Ouput C to E or Ground. Here I'm, not exactly sure why we have a ground in the schematic as E should be connected to the ground itself.
Now the things I really don't understand is why is there a diode from ground to input. Wouldn't it allow current to flow from OutputC to Input? I guess if such thing would happen, the transistors would stop the current from flowing back to the input.
All output pins should be connected to some kind of positive voltage, so when the input is activated, the electron will be sunk into the output C.
Second thing, it looks like all inputs are connected together to the ground which makes it possible to actually trigger all inputs at once. The resistance between any pair of input is always around 18.88K ohm. Which makes me believe that if I put too much current on one input, it's enough to activate all inputs at once.
By looking at the diagram, we can see there is no diode to prevent current from flowing back from one input to an other.
The reason I'm asking is because I'm unable to understand how to wire this thing to a stepper motor. Most of the tutorial simply wire the input from an arduino for example and it just works. In my case, it seems to be pushing either too much current through the input or not enough because the output do not seem to be activated independently of the input.
I only have a digital analyzer so It's a bit hard to understand what's going on. I can see in the analyzer that the voltage is rising up or down for all channels. 
I was trying to add some resistance on one wire to check how the output would change, after I got around 100k for a "clean" rise and fall for one single channel, I tried to connect the other channels but once the four channels were connected with each of them with 100k resistor before the input. I still got messed signals. 
It's just a guess, but since I added resistor on each channel, it might prevent electron to flow back to each inputs. Like all of the connected input leak a bit of voltage to ground so it's technically not possible to flow back... With one channel used, it might be simply flowing through the diode below... 
Anyone could clear this up... How is it possible 1 input drive multiple output?
Voltage put on input is 5v and on COM 12v. When a stepper motor is connected, I'd expect 12v to flow through the output ports that are open.

Here's the shematic of what I'm have right now:

simulate this circuit – Schematic created using CircuitLab

A:

I expect the ground symbol is to represent the connection to the IC substrate.
The diodes connected to the input and output are almost certainly parasitic diodes that are not really required but are created as part of the semiconductor design process.  Since they are reverse biased under normal conditions they do not affect operation and the circuit can be analyzed as if they are not there.  Current will not flow through them under the conditions you will be using.
I don't understand your explanation of what is going wrong.  You should be able to drive all the channels independently.
Make sure that the E terminal (pin 8) is connected to the negative terminal of the power supply feeding the Arduino - it is important they share the same ground. If you have a separate power supply for the motor it's negative terminal should also be connected to the E terminal.
The COM terminal should connect to a snubber network, or zener diode to control the back-EMF of the motor to a reasonable value. Connecting it to the positive terminal of the power supply may stop proper action of the stepper motor except at slow speeds.  

