If the motor draws too much current (which is at a maximum when the motor starts up, or stalls), then the power supply will be heavily loaded, and you'll see its voltage drop. That's likely to be a problem for everything else using the same supply, like the Arduino.
Since you say your supply is capable of 3A, you shouldn't ever have your motor (or DC-DC converter) draw that much. A more reasonable amount might be 2A, or 2.5A, leaving 1A or 500mA for everything else. Also, this assumes that the label on your power supply isn't lying about how much it can supply. Typically, for consumer supplies, if you draw the reported current limit, there will be a significant voltage drop, to perhaps 4.5V or worse, so I'd be conservative about how much current I'd reserve for the motor. From here on, I'll assume 2A.
Reducing motor voltage would also reduce motor current, so a buck converter could actually solve your problem, but you'd have to calculate what motor voltage would pass 2A with the motor completely stalled. Start by measuring motor winding resistance, which I'll call \$R_M\$. Let's say you measured \$R_M=1.25\Omega\$. Now you can predict what stall current would be, using Ohm's law, if you connected the stalled motor directly across a 5V supply:
$$ I = \frac{V}{R} = \frac{5V}{1.25\Omega} = 4A $$
Obviously that's too much for your supply, having a limit of 3A, and the supply would fail. So you must decide what maximum current you wish the motor to draw from the supply, say \$I_{MAX}=2A\$.
This is where things get a little complex, since the buck converter is not 100% efficient, and its input and output currents will not be equal. The following is not difficult, but it isn't obvious either. Assuming a buck-converter efficiency of \$Q\$, we can relate input and output power for the converter:
$$
\begin{aligned}
P_{OUT} &= Q\times P_{IN} \\ \\
I_{OUT} \times V_{OUT} &= Q \times I_{IN} \times V_{IN} \\ \\
\end{aligned}
$$
We also know the relationship between output current and output voltage, for the stalled motor:
$$ I_{OUT} = \frac{V_{OUT}}{R_M} $$
plugging this in, we get:
$$
\begin{aligned}
\frac{V_{OUT}}{R_M} \times V_{OUT} &= Q \times I_{IN} \times V_{IN} \\ \\
\frac{{V_{OUT}}^2}{R_M} &= Q \times I_{IN} \times V_{IN} \\ \\
V_{OUT} &= \sqrt{R_M \times Q \times I_{IN} \times V_{IN}} \\ \\
\end{aligned}
$$
If I use a few example values, \$R_M=1.25\Omega\$, \$V_{IN}=5V\$, \$Q=70\%\$:
$$
\begin{aligned}
V_{OUT} &= \sqrt{1.25 \times 0.7 \times 2 \times 5} \\ \\
&\approx 3V \\ \\
\end{aligned}
$$
That's the voltage you'd require your buck-converter to output, if you wanted the current drawn from the 5V power supply to remain at or under 2A even when the motor is stalled or heavily loaded.
What I show below is a way to actively measure and limit motor current, and automatically produce the correct voltage, without a DC-DC converter:
simulate this circuit – Schematic created using CircuitLab
Resistor R1 senses current, switching on Q2 when the voltage across it reaches 0.7V. That pulls Q1's gate towards ground, tending to switching it off, and an equilibrium is obtained in which current settles at a little over 2A.
R1 removes about 0.7V from the motor's supply, so that under load it won't see more than 4.3V or so. That might even remove the need for a DC-DC converter, which is why I powered this directly from +5V.
For completeness, here's a similar throttle at the high-side, which would require an extra transistor:
simulate this circuit
In both cases Q1 will dissipate about 8W under stall/start conditions, but as long as those are short-duration, that shouldn't be a problem. If those conditions last longer than a couple of seconds, you'll need a beefy heat-sink on Q1.
The current limit will be:
$$ I_{MAX} \approx \frac{0.7V}{R_1} $$
Don't forget D1, which will protect your MOSFET (and Arduino) from the motor's inductance.