Arduino in built adc

Hey I tried Arduino Duemilonove in built ADC and tried to get sampling rate it is giving. According to the datasheet we are getting sampling rate of 10,000 hz but I gave a DC input to ADC pin and sent data to serial port. I read serial port using matlab. I actually got 1000 samples in 2.26 seconds giving frequency of 441 Hz but as I collected 10,000 samples it took 6.89 sec giving frequency of 1449 hz(approx). I even tried with some external ADC's. As no of samples collected increased sampling frequency seems to increased. why is that so?
thanks

Can't help unless you post your code.

...R

and sent data to serial port.

Hmmm.

It is because of other things your code is doing.
This is called overhead.
If you post your code we might be able to suggest ways of reducing it.

Arduino code is as simple it can get

#include "SPI.h"
void setup()
{
Serial.begin(115200);
}
void loop()
{
  int precision_value=analogRead(A0);
  Serial.println(precision_value);
  //delay(1000);
}

As far as matlab code it is not too complicated either

clc;
clear all;
close all;
arduino=serial('COM12','BaudRate',9600); 
arduino.status %checking status of port before opening
fopen(arduino);
arduino.status %checking the status of port after opening
tic
for i=1:100
    disp(i)
    y(i)=fscanf(arduino,'%d')
end
toc
fclose(arduino); 
x=1:100;
plot(x,y);
ylim([0 1023]);
xlabel('no of samples')
ylabel('adc values')

I do realize lesser no of samples may be due to baudrate 9600 but I am curious why frequency increases on increasing number of samples

Serial.begin(115200);``arduino=serial('COM12','BaudRate',9600);
Again, Hmmm.

At 9600, even if all the readings were less than 10, you couldn't exceed more than 320 readings per second with that Arduino code.
At 115200, this rises to just 3840.

If you don't need continuous readings then store them in the memory and transfer it in batches. The limit on the internal memory will limit the batches to about 1.5K bytes.

Also rather than print a string of the value which can be four characters plus a CR and LF, use serial write and just send two bytes. You can tag the two bytes so they are identified uniquely when they arrive.