You are getting different results because each tree in an ensemble is trained from a different random sample of your data. By default, these samples are constructed in a non-repeatable way, and so each time you train the ensemble it will be (probably only slightly) different.
You can change this behavior through the API using the "seed" parameter to the ensemble request. This will make the samples the same every time the ensemble is created. In the API, of course, providing a different value for seed will produce a different ensemble.
If you are working from the BigML Dashboard you need to manually configure your ensemble. In the dataset view, select CONFIGURE ENSEMBLE from the configure option menu:
After that, select Deterministic sample in the Advanced sampling panel, as shown in the image below: