There are some important clarifications out of this question that are good to point out:
The frequency resolution of a block of data is 1/T where T is the length of the data in time (in seconds). Since the sampling rate and block length are related as
$T = N/f_s$
Where $f_s$ is the sampling rate, it follows that the frequency resolution for a block of N samples will be $1/T = f_s/N$.
Zero padding does not change the frequency resolution, it only interpolates more samples of the Discrete Time Fourier Transform. See these posts:
What happens when N increases in N-point DFT
What proportion of a padded FFT should be actual values
When you do fft(signal,N) in Matlab, N must be larger or equal to the signal length and when larger it will simply append zeros, so identical to zero padding.
So to achieve a 10 Hz resolution bandwidth, you either need to reduce the number of samples, as in fft(sig(1:m)), or reduce the sampling rate, but regardless of sample rate, the length of the block in your fft must be 1/10 = 0.1 seconds long.
Note that windowing if performed will expand the frequency resolution; the finest resolution is achieved with no windowing and is $f_s/N$
Refer to this paper by fred harris which details the resolution bandwidth for various windows: fred harris on the use of windowing