Yes.
using RC servo signals
This looks like it will work great with the DIP switches set to "servo" mode.
The documentation at that link implies that motor driver accepts 2 independent standard "R/C servo" inputs to drive 2 independent motors, and its output to those motors appears to be compatible with your 12 V 4 A DC motors (I'm assuming you have 2-wire DC motors, rather than 3-wire, 4-wire, or 5-wire motors).
The Arduino Servo library claims it can control 12 independent RC (hobby) servo motors on most Arduino boards, driving them from 12 independent digital output pins.
using analog 0 to 5 V signals
I'm not sure this will work for you with the DIP switches set to "analog" mode.
The Arduino analogWrite() library appears to only support controlling 6 independent motors on most Arduino boards.
As long as you are fine with independently controlling at most 6 motors per Arduino board, the "generate PWM and filter to get analog" approach looks like it would work just fine, also.
Related: Can Arduino Mega handle 6 motors independently
Arduino Outputs
Some controllers have "5V tolerant" inputs, so you can provide 5V from your Arduino and the robot will register a logic high and not be adversely affected by the over-voltage signal. I'm not sure if the robot has this feature; you'll probably have to check the datasheet for the microcontroller in the robot. If it does not have this feature, yes, you can get away with a 5V -> 3.3V converter using a voltage divider.
You need two resistors on each output pin, in this configuration:
\$V_{in}\$ is your 5V signal from the Arduino, \$V_{out}\$ needs to be 3.3V or less. These voltages are related by the equation:
$$ V_{out} = V_{in} * \frac{R_2}{R_1 + R_2} $$
I suggest that you could use \$R_2 = 33\mbox{ }k\Omega\$ and \$R_1 = 22\mbox{ }k\Omega\$ for a safe output of 3V. Other combinations, or higher-tolerance resistors, could get you closer to 3.3V or reduce the power these resistors consume, but that's probably not necessary.
Arduino Inputs
I'm not sure what the interface is on that robot (since you didn't provide a datasheet or schematic), but I'm guessing that there will be some signals that are output by the robot and are used as inputs to the Arduino.
The outputs from the robot will be at 3.3V or less, while the Arduino (according to the "DC Characteristics" table in the ATmega datasheet) expects that the following inequality will hold for input high voltage \$V_{IH}\$:
$$ V_{CC} + 0.5 >= V_{IH} >= 0.6 * V_{CC}$$
Practically, this inequality means that your Arduino requires 3V minimum inputs before it will register a logic-high signal. The robot's controller may meet these requirements, or it may not. (Note that the I2C bus requires \$0.7 * V_{CC}\$, or 3.5V, which will not happen).
For example, a 3.3V Arduino may only provide ~2.4V as a logic high. You can't connect a 3.3V Arduino to a 5V Arduino 2.4V on an input pin would be ignored by the 5V Arduino.
What to do
First and foremost, find and read the datasheets for the controllers on your robot and Arduino. The Arduino's ATmega32 datasheet is here.
If the robot controller tolerates 5V inputs, and provides 3V or greater outputs, then you're good to go.
If not, you need a level translation or level shifting circuit. This can be created from discrete elements like resistors and transistors (especially easy in the 5V -> 3.3V direction), from generic level translators like the 74ALVC, or from protocol specific translators like the PCA9306 for I2C.
Alternatively, use a microcontroller that runs at 3.3V. Sparkfun sells a 3.3V "Arduino Pro" board, or PJRC offers a 3.3V Teensy. If you're willing to step away from the Arduino world, there's a lot of processors that run at 3.3V.
Best Answer
If you have two separated circuits the voltages of the first don't mean anything to the second and vice versa. If you want to combine the circuits you'll have to connect a reference on one circuit with a reference on the other one. In 99 % of cases you'll choose the resp. grounds for this, because that's what ground is for: a reference against which all the rest is measured. If there's a 3 V level in a circuit, it will be referenced to ground, unless specified otherwise.
So by connecting the ground of a 5 V circuit to the ground of a 12 V circuit the 5 V becomes meaningful for that circuit as well: it will also be 5 V, or 7 V less than the 12 V.
A well designed circuit must have a reliable ground, which means that the 0 V at one point should be as close as possible to that 0 V at any other point of the ground net. Zero difference is not always possible if you're working with high currents, but the difference should be as low as possible.